package com.jinyi.wwdeng.ui.steps.contract

import com.jinyi.base.mvp.IBasePresenter
import com.jinyi.base.mvp.IBaseView
import org.json.JSONObject

/**
 * JinYiTest
 * @Author wwdeng
 * @CreateTime: 2024/4/29 11:28
 * @Annotation：契约接口
 */
interface StepAccountContract {

    /**
     * model 层接口类
     */
    interface Model {

        /**
         * 获取已绑的账户列表
         */
        fun loadBindAccountListAction()

        /**
         * 添加绑定账户
         */
        fun addBindAccountAction(mobile: String, walletChannel: String, bindFlag: String = "NO")

        /**
         * 删除账户
         */
        fun deleteAccountAction(data: JSONObject)

    }

    /**
     * view 层接口类
     */
    interface View : IBaseView {
        /**
         * 显示已绑定的账户列表
         */
        fun setBindAccountList(accountList: ArrayList<JSONObject>)

        /**
         * 提示绑定另一个渠道账户
         */
        fun showBingAccountOtherDialog(otherInfo: JSONObject?)
    }

    /**
     * presenter 层接口类
     */
    interface Presenter : IBasePresenter {
        /**
         * 获取已绑定账户列表成功
         */
        fun onBindAccountListSuccess(data: JSONObject)

        /**
         * 添加绑定账户成功
         */
        fun addBindAccountSuccess(mobile: String, data: JSONObject)

        /**
         * 删除成功
         */
        fun onDeleteAccountSuccess(data: JSONObject)

    }
}